Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Node / ReticulumProjects / MeshChatX.git / files / meshchatx / src / frontend / components / relay / RelayHostRoomsModal.vue

Displaying Raw • Download


meshchatx/src/frontend/components/relay/RelayHostRoomsModal.vue 66064caec998b01981b80ec5070e862e2ce59bca (66064cae) Text, 13.18 KB

T8b949e<!-- SPDX-License-Identifier: 0BSD -->

Tb4b4b4<Tff7b72templateTb4b4b4>
Tb4b4b4<Tff7b72div
Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3openTa5d6ff"
Te6edf3classTff7b72=Ta5d6ff"fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4"
Tb4b4b4@Te6edf3clickTb4b4b4.Te6edf3selfTff7b72=Ta5d6ff"Te6edf3$emitTb4b4b4(Ta5d6ff'close'Tb4b4b4)Ta5d6ff"
Tb4b4b4>
Tb4b4b4<Tff7b72div
Te6edf3classTff7b72=Ta5d6ff"flex h-[min(100dvh-2rem,900px)] w-full max-w-6xl flex-col rounded-2xl border border-sem-border-card bg-sem-surface shadow-xl"
Te6edf3roleTff7b72=Ta5d6ff"dialog"
Tb4b4b4:Te6edf3aria-labelTff7b72=Ta5d6ff"Te6edf3titleTa5d6ff"
Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex shrink-0 items-center gap-2 border-b border-sem-border px-4 py-3 sm:px-5 sm:py-4"Tb4b4b4>
Tb4b4b4<Tff7b72button
Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3selectedRoom Tff7b72&& Te6edf3isNarrowTa5d6ff"
Te6edf3typeTff7b72=Ta5d6ff"button"
Te6edf3classTff7b72=Ta5d6ff"rounded-lg p-1.5 text-sem-fg-muted hover:bg-sem-surface/60"
Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3selectedRoom Tff7b72= Tff7b72nullTa5d6ff"
Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon Te6edf3icon-nameTff7b72=Ta5d6ff"arrow-left" Te6edf3classTff7b72=Ta5d6ff"size-5" Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tff7b72h2 Te6edf3classTff7b72=Ta5d6ff"min-w-0 flex-1 text-lg font-semibold truncate"Tb4b4b4>Tff7b72{{ Te6edf3title Tff7b72}}Tb4b4b4<Tb4b4b4/Tff7b72h2Tb4b4b4>
Tb4b4b4<Tff7b72button
Te6edf3typeTff7b72=Ta5d6ff"button"
Te6edf3classTff7b72=Ta5d6ff"rounded-lg p-1.5 text-sem-fg-muted hover:bg-sem-surface/60"
Tb4b4b4:Te6edf3titleTff7b72=Ta5d6ff"Te6edf3$tTb4b4b4(Ta5d6ff'common.close'Tb4b4b4)Ta5d6ff"
Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3$emitTb4b4b4(Ta5d6ff'close'Tb4b4b4)Ta5d6ff"
Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon Te6edf3icon-nameTff7b72=Ta5d6ff"close" Te6edf3classTff7b72=Ta5d6ff"size-5" Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>

Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex min-h-0 flex-1 flex-col lg:flex-row"Tb4b4b4>
Tb4b4b4<Tff7b72div
Te6edf3classTff7b72=Ta5d6ff"flex min-h-0 flex-col border-sem-border lg:w-96 lg:shrink-0 lg:border-r"
Tb4b4b4:Te6edf3classTff7b72=Ta5d6ff"Te6edf3isNarrow Tff7b72&& Te6edf3selectedRoom Tff7b72? Ta5d6ff'hidden' Tff7b72: Ta5d6ff'flex-1 lg:flex-none'Ta5d6ff"
Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"shrink-0 border-b border-sem-border p-3 sm:p-4 space-y-2"Tb4b4b4>
Tb4b4b4<Tff7b72form Te6edf3classTff7b72=Ta5d6ff"flex flex-wrap gap-2" Tb4b4b4@Te6edf3submitTb4b4b4.Te6edf3preventTff7b72=Ta5d6ff"Te6edf3createRoomTa5d6ff"Tb4b4b4>
Tb4b4b4<Tff7b72input
Te6edf3v-modelTff7b72=Ta5d6ff"Te6edf3newRoomTb4b4b4.Te6edf3nameTa5d6ff"
Te6edf3typeTff7b72=Ta5d6ff"text"
Tb4b4b4:Te6edf3placeholderTff7b72=Ta5d6ff"Te6edf3$tTb4b4b4(Ta5d6ff'relay_chat.host_room_name'Tb4b4b4)Ta5d6ff"
Te6edf3classTff7b72=Ta5d6ff"input-field !py-2 !text-xs flex-1 min-w-[8rem]"
Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tff7b72input
Te6edf3v-modelTff7b72=Ta5d6ff"Te6edf3newRoomTb4b4b4.Te6edf3topicTa5d6ff"
Te6edf3typeTff7b72=Ta5d6ff"text"
Tb4b4b4:Te6edf3placeholderTff7b72=Ta5d6ff"Te6edf3$tTb4b4b4(Ta5d6ff'relay_chat.host_room_topic'Tb4b4b4)Ta5d6ff"
Te6edf3classTff7b72=Ta5d6ff"input-field !py-2 !text-xs flex-1 min-w-[8rem]"
Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tff7b72button Te6edf3typeTff7b72=Ta5d6ff"submit" Tb4b4b4:Te6edf3classTff7b72=Ta5d6ff"Tb4b4b4[Te6edf3btnPrimaryTb4b4b4, Ta5d6ff'!px-3 !py-2 !text-xs'Tb4b4b4]Ta5d6ff" Tb4b4b4:Te6edf3disabledTff7b72=Ta5d6ff"Te6edf3creatingTa5d6ff"Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon Te6edf3icon-nameTff7b72=Ta5d6ff"plus" Te6edf3classTff7b72=Ta5d6ff"size-4" Tb4b4b4/Tb4b4b4>
Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"relay_chat.host_add_room"Tb4b4b4) Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72formTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex-1 overflow-y-auto custom-scrollbar p-3 sm:p-4"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3loadingTa5d6ff" Te6edf3classTff7b72=Ta5d6ff"py-12 text-center text-sm text-sem-fg-muted"Tb4b4b4>
Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"common.loading"Tb4b4b4) Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72ul Te6edf3v-else Te6edf3classTff7b72=Ta5d6ff"space-y-1.5"Tb4b4b4>
Tb4b4b4<Tff7b72li
Te6edf3v-forTff7b72=Ta5d6ff"Te6edf3room Tff7b72in Te6edf3roomsTa5d6ff"
Tb4b4b4:Te6edf3keyTff7b72=Ta5d6ff"Te6edf3roomTb4b4b4.Te6edf3nameTa5d6ff"
Te6edf3classTff7b72=Ta5d6ff"rounded-xl border px-3 py-2.5 cursor-pointer transition-colors"
Tb4b4b4:Te6edf3classTff7b72=Ta5d6ff"
Te6edf3selectedRoom Tff7b72=== Te6edf3roomTb4b4b4.Te6edf3name
Tff7b72? Ta5d6ff'border-sem-accent bg-sem-accent/10'
Tff7b72: Ta5d6ff'border-sem-border hover:bg-sem-surface/50'
Ta5d6ff"
Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3selectRoomTb4b4b4(Te6edf3roomTb4b4b4.Te6edf3nameTb4b4b4)Ta5d6ff"
Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex items-start justify-between gap-2"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"min-w-0"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"font-medium"Tb4b4b4>#Tff7b72{{ Te6edf3roomTb4b4b4.Te6edf3name Tff7b72}}Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3roomTb4b4b4.Te6edf3topicTa5d6ff" Te6edf3classTff7b72=Ta5d6ff"truncate text-xs text-sem-fg-muted"Tb4b4b4>
Tff7b72{{ Te6edf3roomTb4b4b4.Te6edf3topic Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"mt-1 flex flex-wrap gap-x-3 text-xs text-sem-fg-muted"Tb4b4b4>
Tb4b4b4<Tff7b72spanTb4b4b4>Tff7b72{{ Te6edf3roomTb4b4b4.Te6edf3members Tff7b72}} Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"relay_chat.host_clients"Tb4b4b4) Tff7b72}}Tb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tff7b72spanTb4b4b4>Tff7b72{{ Te6edf3roomTb4b4b4.Te6edf3message_count Tff7b72|| T79c0ff0 Tff7b72}} msgsTb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3roomTb4b4b4.Te6edf3last_activity_tsTa5d6ff" Te6edf3classTff7b72=Ta5d6ff"text-xs text-sem-fg-muted"Tb4b4b4>
Tff7b72{{ Te6edf3formatTimeTb4b4b4(Te6edf3roomTb4b4b4.Te6edf3last_activity_tsTb4b4b4) Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72button
Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3roomTb4b4b4.Te6edf3registeredTa5d6ff"
Te6edf3typeTff7b72=Ta5d6ff"button"
Te6edf3classTff7b72=Ta5d6ff"shrink-0 rounded-lg p-1.5 text-sem-fg-muted hover:text-sem-danger"
Tb4b4b4:Te6edf3titleTff7b72=Ta5d6ff"Te6edf3$tTb4b4b4(Ta5d6ff'relay_chat.host_delete_room'Tb4b4b4)Ta5d6ff"
Tb4b4b4@Te6edf3clickTb4b4b4.Te6edf3stopTff7b72=Ta5d6ff"Te6edf3deleteRoomTb4b4b4(Te6edf3roomTb4b4b4.Te6edf3nameTb4b4b4)Ta5d6ff"
Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon Te6edf3icon-nameTff7b72=Ta5d6ff"trash-can-outline" Te6edf3classTff7b72=Ta5d6ff"size-4" Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72liTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72ulTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>

Tb4b4b4<Tff7b72div
Te6edf3classTff7b72=Ta5d6ff"flex min-h-0 min-w-0 flex-1 flex-col"
Tb4b4b4:Te6edf3classTff7b72=Ta5d6ff"Te6edf3isNarrow Tff7b72&& Tff7b72!Te6edf3selectedRoom Tff7b72? Ta5d6ff'hidden' Tff7b72: Ta5d6ff'flex'Ta5d6ff"
Tb4b4b4>
Tb4b4b4<Tff7b72div
Te6edf3v-ifTff7b72=Ta5d6ff"Tff7b72!Te6edf3selectedRoomTa5d6ff"
Te6edf3classTff7b72=Ta5d6ff"flex flex-1 flex-col items-center justify-center gap-2 p-6 text-center text-sm text-sem-fg-muted"
Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon Te6edf3icon-nameTff7b72=Ta5d6ff"pound" Te6edf3classTff7b72=Ta5d6ff"size-10 opacity-40" Tb4b4b4/Tb4b4b4>
Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"relay_chat.host_rooms_select"Tb4b4b4) Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72template Te6edf3v-elseTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"shrink-0 border-b border-sem-border px-4 py-3 sm:px-5"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"font-semibold"Tb4b4b4>#Tff7b72{{ Te6edf3selectedRoom Tff7b72}}Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"text-xs text-sem-fg-muted"Tb4b4b4>Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"relay_chat.host_room_activity"Tb4b4b4) Tff7b72}}Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex-1 overflow-y-auto custom-scrollbar p-3 sm:p-4"Tb4b4b4>
Tb4b4b4<Tff7b72ul Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3roomMessagesTb4b4b4.Te6edf3length Tff7b72> T79c0ff0Ta5d6ff" Te6edf3classTff7b72=Ta5d6ff"space-y-2"Tb4b4b4>
Tb4b4b4<Tff7b72li
Te6edf3v-forTff7b72=Ta5d6ff"Tb4b4b4(Te6edf3msgTb4b4b4, Te6edf3idxTb4b4b4) Tff7b72in Te6edf3roomMessagesTa5d6ff"
Tb4b4b4:Te6edf3keyTff7b72=Ta5d6ff"Te6edf3idxTa5d6ff"
Te6edf3classTff7b72=Ta5d6ff"rounded-lg border border-sem-border bg-sem-canvas px-3 py-2 text-sm"
Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex flex-wrap items-center gap-x-2 text-xs text-sem-fg-muted"Tb4b4b4>
Tb4b4b4<Tff7b72span Tb4b4b4:Te6edf3styleTff7b72=Ta5d6ff"Tb4b4b4{ Te6edf3colorTff7b72: Te6edf3colorForHashTb4b4b4(Te6edf3msgTb4b4b4.Te6edf3peerTb4b4b4) Tb4b4b4}Ta5d6ff"Tb4b4b4>Tff7b72{{
Te6edf3msgTb4b4b4.Te6edf3nick Tff7b72|| Te6edf3formatHashTb4b4b4(Te6edf3msgTb4b4b4.Te6edf3peerTb4b4b4)
Tff7b72}}Tb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tff7b72spanTb4b4b4>Tff7b72{{ Te6edf3formatTimeTb4b4b4(Te6edf3msgTb4b4b4.Te6edf3tsTb4b4b4) Tff7b72}}Tb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"mt-1 whitespace-pre-wrap break-words"Tb4b4b4>Tff7b72{{ Te6edf3msgTb4b4b4.Te6edf3text Tff7b72}}Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72liTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72ulTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3v-else Te6edf3classTff7b72=Ta5d6ff"py-8 text-center text-sm text-sem-fg-muted"Tb4b4b4>
Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"relay_chat.host_no_activity"Tb4b4b4) Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72templateTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72templateTb4b4b4>

Tb4b4b4<Tff7b72scriptTb4b4b4>
Tff7b72import Te6edf3MaterialDesignIcon Tff7b72from Ta5d6ff"../MaterialDesignIcon.vue"Tb4b4b4;
Tff7b72import Te6edf3DialogUtils Tff7b72from Ta5d6ff"../../js/DialogUtils"Tb4b4b4;
Tff7b72import Te6edf3ToastUtils Tff7b72from Ta5d6ff"../../js/ToastUtils"Tb4b4b4;

Tff7b72const Te6edf3BTN_PRIMARY Tff7b72=
Ta5d6ff"inline-flex items-center justify-center gap-1.5 rounded-lg bg-sem-action-primary px-3 py-2 text-sm font-semibold text-white transition hover:bg-sem-action-primary-hover disabled:opacity-50"Tb4b4b4;
Tff7b72const Te6edf3NAME_COLORS Tff7b72= Tb4b4b4[Ta5d6ff"#ef4444"Tb4b4b4, Ta5d6ff"#f97316"Tb4b4b4, Ta5d6ff"#eab308"Tb4b4b4, Ta5d6ff"#22c55e"Tb4b4b4, Ta5d6ff"#14b8a6"Tb4b4b4, Ta5d6ff"#3b82f6"Tb4b4b4, Ta5d6ff"#8b5cf6"Tb4b4b4, Ta5d6ff"#ec4899"Tb4b4b4]Tb4b4b4;

Tff7b72export Tff7b72default Tb4b4b4{
Te6edf3nameTff7b72: Ta5d6ff"RelayHostRoomsModal"Tb4b4b4,
Te6edf3componentsTff7b72: Tb4b4b4{ Te6edf3MaterialDesignIcon Tb4b4b4}Tb4b4b4,
Te6edf3propsTff7b72: Tb4b4b4{
Te6edf3openTff7b72: Tb4b4b4{ Te6edf3typeTff7b72: Tffa657BooleanTb4b4b4, Tff7b72defaultTff7b72: Tff7b72false Tb4b4b4}Tb4b4b4,
Te6edf3hubTff7b72: Tb4b4b4{ Te6edf3typeTff7b72: Tffa657ObjectTb4b4b4, Tff7b72defaultTff7b72: Tff7b72null Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3emitsTff7b72: Tb4b4b4[Ta5d6ff"close"Tb4b4b4, Ta5d6ff"refresh"Tb4b4b4]Tb4b4b4,
Te6edf3dataTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Tb4b4b4{
Te6edf3loadingTff7b72: Tff7b72falseTb4b4b4,
Te6edf3creatingTff7b72: Tff7b72falseTb4b4b4,
Te6edf3roomsTff7b72: Tb4b4b4[Tb4b4b4]Tb4b4b4,
Te6edf3recentTff7b72: Tb4b4b4[Tb4b4b4]Tb4b4b4,
Te6edf3selectedRoomTff7b72: Tff7b72nullTb4b4b4,
Te6edf3newRoomTff7b72: Tb4b4b4{ Te6edf3nameTff7b72: Ta5d6ff""Tb4b4b4, Te6edf3topicTff7b72: Ta5d6ff"" Tb4b4b4}Tb4b4b4,
Te6edf3isNarrowTff7b72: Tff7b72falseTb4b4b4,
Te6edf3mqTff7b72: Tff7b72nullTb4b4b4,
Te6edf3btnPrimaryTff7b72: Te6edf3BTN_PRIMARYTb4b4b4,
Tb4b4b4}Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3computedTff7b72: Tb4b4b4{
Te6edf3titleTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"relay_chat.host_rooms_modal_title"Tb4b4b4, Tb4b4b4{ Te6edf3hubTff7b72: Tff7b72thisTb4b4b4.Te6edf3hubTff7b72?Tb4b4b4.Te6edf3name Tff7b72|| Ta5d6ff"" Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3roomMessagesTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Tff7b72thisTb4b4b4.Te6edf3selectedRoomTb4b4b4) Tb4b4b4{
Tff7b72return Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tb4b4b4}
Tff7b72return Tff7b72thisTb4b4b4.Te6edf3recentTb4b4b4.Te6edf3filterTb4b4b4(Tb4b4b4(Te6edf3mTb4b4b4) Tb4b4b4=> Te6edf3mTb4b4b4.Te6edf3room Tff7b72=== Tff7b72thisTb4b4b4.Te6edf3selectedRoomTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3watchTff7b72: Tb4b4b4{
Te6edf3openTb4b4b4(Te6edf3valTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3valTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3selectedRoom Tff7b72= Tff7b72nullTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3newRoom Tff7b72= Tb4b4b4{ Te6edf3nameTff7b72: Ta5d6ff""Tb4b4b4, Te6edf3topicTff7b72: Ta5d6ff"" Tb4b4b4}Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3fetchActivityTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3mountedTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3mq Tff7b72= Tffa657windowTb4b4b4.Te6edf3matchMediaTb4b4b4(Ta5d6ff"(max-width: 1023px)"Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3isNarrow Tff7b72= Tff7b72thisTb4b4b4.Te6edf3mqTb4b4b4.Te6edf3matchesTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3mqTb4b4b4.Te6edf3addEventListenerTb4b4b4(Ta5d6ff"change"Tb4b4b4, Tff7b72thisTb4b4b4.Te6edf3onMqTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3beforeUnmountTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3mqTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3mqTb4b4b4.Te6edf3removeEventListenerTb4b4b4(Ta5d6ff"change"Tb4b4b4, Tff7b72thisTb4b4b4.Te6edf3onMqTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3methodsTff7b72: Tb4b4b4{
Te6edf3onMqTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3isNarrow Tff7b72= Tff7b72thisTb4b4b4.Te6edf3mqTb4b4b4.Te6edf3matchesTb4b4b4;
Tb4b4b4}Tb4b4b4,
Tff7b72async Te6edf3fetchActivityTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Tff7b72thisTb4b4b4.Te6edf3hubTff7b72?Tb4b4b4.Te6edf3idTb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72thisTb4b4b4.Te6edf3loading Tff7b72= Tff7b72trueTb4b4b4;
Tff7b72try Tb4b4b4{
Tff7b72const Te6edf3response Tff7b72= Tff7b72await Tffa657windowTb4b4b4.Te6edf3apiTb4b4b4.Te6edf3getTb4b4b4(Ta5d6ff`Ta5d6ff/api/v1/rrc/servers/Tffd700${Tff7b72thisTb4b4b4.Te6edf3hubTb4b4b4.Te6edf3idTffd700}Ta5d6ff/activityTa5d6ff`Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3rooms Tff7b72= Te6edf3responseTb4b4b4.Te6edf3dataTff7b72?Tb4b4b4.Te6edf3rooms Tff7b72|| Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3recent Tff7b72= Te6edf3responseTb4b4b4.Te6edf3dataTff7b72?Tb4b4b4.Te6edf3recent Tff7b72|| Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Te6edf3ToastUtilsTb4b4b4.Te6edf3errorTb4b4b4(Te6edf3eTb4b4b4.Te6edf3responseTff7b72?Tb4b4b4.Te6edf3dataTff7b72?Tb4b4b4.Te6edf3message Tff7b72|| Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"relay_chat.action_failed"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3$emitTb4b4b4(Ta5d6ff"close"Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72finally Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3loading Tff7b72= Tff7b72falseTb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3selectRoomTb4b4b4(Te6edf3nameTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3selectedRoom Tff7b72= Te6edf3nameTb4b4b4;
Tb4b4b4}Tb4b4b4,
Tff7b72async Te6edf3createRoomTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3name Tff7b72= Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3newRoomTb4b4b4.Te6edf3name Tff7b72|| Ta5d6ff""Tb4b4b4)Tb4b4b4.Te6edf3trimTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3name Tff7b72|| Tff7b72!Tff7b72thisTb4b4b4.Te6edf3hubTff7b72?Tb4b4b4.Te6edf3idTb4b4b4) Tb4b4b4{
Te6edf3ToastUtilsTb4b4b4.Te6edf3warningTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"relay_chat.room_required"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72thisTb4b4b4.Te6edf3creating Tff7b72= Tff7b72trueTb4b4b4;
Tff7b72try Tb4b4b4{
Tff7b72await Tffa657windowTb4b4b4.Te6edf3apiTb4b4b4.Te6edf3postTb4b4b4(Ta5d6ff`Ta5d6ff/api/v1/rrc/servers/Tffd700${Tff7b72thisTb4b4b4.Te6edf3hubTb4b4b4.Te6edf3idTffd700}Ta5d6ff/roomsTa5d6ff`Tb4b4b4, Tb4b4b4{
Te6edf3nameTb4b4b4,
Te6edf3topicTff7b72: Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3newRoomTb4b4b4.Te6edf3topic Tff7b72|| Ta5d6ff""Tb4b4b4)Tb4b4b4.Te6edf3trimTb4b4b4(Tb4b4b4) Tff7b72|| Tff7b72undefinedTb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3newRoom Tff7b72= Tb4b4b4{ Te6edf3nameTff7b72: Ta5d6ff""Tb4b4b4, Te6edf3topicTff7b72: Ta5d6ff"" Tb4b4b4}Tb4b4b4;
Te6edf3ToastUtilsTb4b4b4.Te6edf3successTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"relay_chat.host_room_created"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3$emitTb4b4b4(Ta5d6ff"refresh"Tb4b4b4)Tb4b4b4;
Tff7b72await Tff7b72thisTb4b4b4.Te6edf3fetchActivityTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Te6edf3ToastUtilsTb4b4b4.Te6edf3errorTb4b4b4(Te6edf3eTb4b4b4.Te6edf3responseTff7b72?Tb4b4b4.Te6edf3dataTff7b72?Tb4b4b4.Te6edf3message Tff7b72|| Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"relay_chat.action_failed"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72finally Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3creating Tff7b72= Tff7b72falseTb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Tff7b72async Te6edf3deleteRoomTb4b4b4(Te6edf3roomTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3confirmed Tff7b72= Tff7b72await Te6edf3DialogUtilsTb4b4b4.Te6edf3confirmTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"relay_chat.host_delete_room_confirm"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3confirmed Tff7b72|| Tff7b72!Tff7b72thisTb4b4b4.Te6edf3hubTff7b72?Tb4b4b4.Te6edf3idTb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72try Tb4b4b4{
Tff7b72await Tffa657windowTb4b4b4.Te6edf3apiTb4b4b4.Tff7b72deleteTb4b4b4(Ta5d6ff`Ta5d6ff/api/v1/rrc/servers/Tffd700${Tff7b72thisTb4b4b4.Te6edf3hubTb4b4b4.Te6edf3idTffd700}Ta5d6ff/rooms/Tffd700${Tffa657encodeURIComponentTb4b4b4(Te6edf3roomTb4b4b4)Tffd700}Ta5d6ff`Tb4b4b4)Tb4b4b4;
Te6edf3ToastUtilsTb4b4b4.Te6edf3successTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"relay_chat.host_room_deleted"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3selectedRoom Tff7b72=== Te6edf3roomTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3selectedRoom Tff7b72= Tff7b72nullTb4b4b4;
Tb4b4b4}
Tff7b72thisTb4b4b4.Te6edf3$emitTb4b4b4(Ta5d6ff"refresh"Tb4b4b4)Tb4b4b4;
Tff7b72await Tff7b72thisTb4b4b4.Te6edf3fetchActivityTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Te6edf3ToastUtilsTb4b4b4.Te6edf3errorTb4b4b4(Te6edf3eTb4b4b4.Te6edf3responseTff7b72?Tb4b4b4.Te6edf3dataTff7b72?Tb4b4b4.Te6edf3message Tff7b72|| Tff7b72thisTb4b4b4.Te6edf3$tTb4b4b4(Ta5d6ff"relay_chat.action_failed"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3colorForHashTb4b4b4(Te6edf3hashTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3hashTb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72undefinedTb4b4b4;
Tb4b4b4}
Tff7b72let Te6edf3n Tff7b72= T79c0ff0Tb4b4b4;
Tff7b72for Tb4b4b4(Tff7b72let Te6edf3i Tff7b72= T79c0ff0Tb4b4b4; Te6edf3i Tff7b72< Te6edf3hashTb4b4b4.Te6edf3lengthTb4b4b4; Te6edf3iTff7b72++Tb4b4b4) Tb4b4b4{
Te6edf3n Tff7b72= Tb4b4b4(Te6edf3n Tff7b72+ Te6edf3hashTb4b4b4.Te6edf3charCodeAtTb4b4b4(Te6edf3iTb4b4b4)Tb4b4b4) Tff7b72% Te6edf3NAME_COLORSTb4b4b4.Te6edf3lengthTb4b4b4;
Tb4b4b4}
Tff7b72return Te6edf3NAME_COLORSTb4b4b4[Te6edf3nTb4b4b4]Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3formatHashTb4b4b4(Te6edf3hashTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3hash Tff7b72|| Te6edf3hashTb4b4b4.Te6edf3length Tff7b72< T79c0ff16Tb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3hash Tff7b72|| Ta5d6ff""Tb4b4b4;
Tb4b4b4}
Tff7b72return Te6edf3hashTb4b4b4.Te6edf3sliceTb4b4b4(T79c0ff0Tb4b4b4, T79c0ff8Tb4b4b4) Tff7b72+ Ta5d6ff"..." Tff7b72+ Te6edf3hashTb4b4b4.Te6edf3sliceTb4b4b4(Tff7b72-T79c0ff8Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3formatTimeTb4b4b4(Te6edf3tsTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3tsTb4b4b4) Tb4b4b4{
Tff7b72return Ta5d6ff""Tb4b4b4;
Tb4b4b4}
Tff7b72return Tff7b72new Tffa657DateTb4b4b4(Te6edf3tsTb4b4b4)Tb4b4b4.Te6edf3toLocaleStringTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4;
Tb4b4b4<Tb4b4b4/Tff7b72scriptTb4b4b4>


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────